【发布时间】:2013-09-06 19:23:39
【问题描述】:
我在ASP.NET 4 中构建了一个内部网络应用程序。我们坚持使用由另一个团队构建的身份验证 API。如果该站点的用户已成功通过该站点的身份验证,我想授予他们对整个站点的访问权限。
在ASP.NET WebForm 的日子里,我只是用来在会话中保留一个自定义用户对象。如果该对象为空,我知道用户未通过身份验证。 MVC 中是否有类似但改进的方法。如果可能,我不想构建自己的 ASP.NET 成员模型提供者。最简单的方法是什么?
【问题讨论】:
-
您能否在调用旧版 API 后手动设置身份验证票证?
-
如果设置了
FormsAuthenticationTicket,可以使用Request.IsAuthenticated和User.Identity判断用户是否登录。Authorize属性也可以使用。 -
仅供参考,在会话中处理身份验证是一个非常糟糕的主意,它不安全(cookie 未加密且容易被盗),并且容易失败,因为会话可以随时回收。改用 FormsAuthentication
-
很好的反馈。感谢 TheKingDave、Henk、Mystere
-
有时解决方案是在另一个问题上,有人已经在stackoverflow上做了一个非常灵活的解决方案,不需要硬编码的角色名称,有完整的代码:stackoverflow.com/questions/9043831/…
标签: c# asp.net asp.net-mvc asp.net-mvc-4