asp.net-mvc – 如何在ASP.net MVC中限制对控制器中某些操作的访
我是ASP.net MVC的新手,并使用它创建了我的第一个Web应用程序.在我的应用程序中我使用数据库身份验证我在控制器中创建了Login操作,检查输入的用户名和密码是否存在于DB中,如果存在,则在Session中输入所需的值,并根据权限将用户重定向到页面,将用户重定向到登录页面.像这样
public ActionResult Login() { if(uservalid) { //set session values and redirect to dashboard } else { //redirect to login } } 在我的应用程序中,有一些功能只能在用户登录时访问.我想在用户尝试访问这些功能之前检查用户是否登录,如果他没有登录或没有权限,则重定向到登录页面或显示一些错误消息. public ActionResult SomeAction() { //Available only when user is logged-in } 那么我该如何检查用户是否登录并提供操作访问权限.我读了有关Authorize属性但不知道如何使用它,因为我正在使用数据库身份验证. 解决方法
如果您使用的是
FormsAuthentication ,则无需使用ASP.NET会话来跟踪当前经过身份验证的用户.
假设您使用FormsAuthentication,一旦您验证了用户的凭据,您应该设置一个表单身份验证cookie: public ActionResult Login() { if(uservalid) { FormsAuthentication.SetAuthCookie("username",false); return RedirectToAction("SomeProtectedAction"); } else { //redirect to login } } 然后: [Authorize] public ActionResult SomeAction() { string currentlyLoggedInUser = User.Identity.Name; } 顺便说一句,如果您使用Visual Studio中的Internet模板创建新的ASP.NET MVC应用程序,您可以查看AccountController,它负责验证用户身份并设置表单身份验证cookie.当然,您可以抛弃所有Entity Framework废话,并针对您自己的数据库表实现您自己的凭据验证. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- wcf – 如何使用Fiddler收听asp.net开发服务器(即cassini)?
- 如何将ASP.NET用户控件转换为Web /复合控件?
- asp.net-mvc – Asp.net MVC TextArea
- asp.net – 使用DependencyResolver进行MVC 3的Controller实
- asp.net-core – 你如何解决AspNet Core缺少的依赖关系?
- asp.net-mvc-4 – 使用web.config中的凭据设置配置成员资格
- asp.net – 在IIS 7.5上使用传出异步Web请求时的可扩展性问
- 选择完成后和提交上传之前的asp.net FileUpload事件
- asp.net – 网络负载平衡方案的会话状态
- asp.net-mvc – asp.mvc中渲染的区别是什么
- asp.net-mvc – 在asp.net mvc控制器中使用构造函
- asp.net-mvc – 在ASP.NET MVC视图中允许多少逻辑
- asp经典 – ASP Classic中的注释代码
- asp.net – 具有完全内存错误的WCF服务(内存门检
- asp.net-mvc-3 – 禁用ASP.NET-MVC3中的unicode字
- SignalR的简单实现消息广播
- asp.net-mvc-3 – ASP.NET MVC 3,动作过滤器和Au
- asp.net – Windows 10主页:Windows身份验证
- asp.net – 在转发器中只选择一个radiobutton
- asp.net – 如何将模型从一个局部视图传递到另一