加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC表单身份验证和未经身份验证的控制器

发布时间:2020-12-15 22:53:52 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP.NET MVC网站被锁定使用表单身份验证. web.config有 authentication mode="Forms"forms defaultUrl="~/Account/LogOn" loginUrl="~/Account/LogOn" timeout="2880"//authenticationauthorization deny users="?"//authorization 除非用户进行身份
我有一个ASP.NET MVC网站被锁定使用表单身份验证. web.config有
<authentication mode="Forms">
<forms defaultUrl="~/Account/LogOn" loginUrl="~/Account/LogOn" timeout="2880"/>
</authentication>
<authorization>
    <deny users="?"/>
</authorization>

除非用户进行身份验证,否则我可以查看除帐户/ LogOn之外的其他页面.

现在我试图添加PayPal IPN到我的网站,为了做到这一点,我需要有两个页面处理PayPal的付款确认和谢谢页面.这两个页面需要用于匿名用户.

我希望这些页面成为我的帐号控制器的控制器操作.有什么办法可以将属性应用于使匿名用户可用的特定操作方法吗?我发现这里的几个帖子试图这样做,但大多数人都想要相反的情况.

基本上,我想让AccountController类除了少数几个方法以外没有大多数方法的授权.现在看来,只有LogOn方法可用于匿名用户.

提前感谢所有的帮助.

解决方法

是的你可以.在您的AccountController中,有一个[授权] – 属性在类级别(使整个控制器受到限制)或特定方法.

要限制特定操作,只需在处理这些操作的方法上使用Authorize-attribute,并将控制器类置于无限制状态.

这里有几个例子…希望它有帮助

要求用户登录,请使用:

[Authorize]
public class SomeController : Controller

// Or
[Authorize]
public ActionResult SomeAction()

要限制特定角色的访问,请使用:

[Authorize(Roles = "Admin,User")]
public class SomeController : Controller

// Or
[Authorize(Roles = "Admin,User")]
public ActionResult SomeAction()

并限制访问特定用户,请使用:

[Authorize(Users = "Charles,Linus")]
public class SomeController : Controller

// Or
[Authorize(Users = "Charles,Linus")]
public ActionResult SomeAction()

您可以看到,您可以在类级别或方法级使用属性.你的选择!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读