ASP.Net MVC登录表单中注册链接点击后始终重定向至登录页问题求助
解决注册链接被重定向到登录页的问题
嗨,这个问题我太熟悉了!你猜的完全没错,就是web.config里的全局授权配置在搞鬼。咱们一步步来解决它:
问题根源
你web.config里的这段配置:
<authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication> <authorization> <deny users="?" /> </authorization>
其中<deny users="?" />表示拒绝所有未认证的匿名用户访问网站的任何资源——包括你的注册页面!所以当你点击注册链接时,因为还没登录,直接被授权规则拦截,重定向到了登录页。
两种解决方案
方案1:给Register Action添加匿名访问特性(推荐)
在你的AccountController里,找到Register方法,给它加上[AllowAnonymous]特性,这样就能覆盖全局的授权规则,允许匿名用户访问注册页面:
[AllowAnonymous] public ActionResult Register() { // 你的注册页面逻辑代码 return View(); }
如果你的Register还有POST方法(处理表单提交),记得也加上这个特性哦:
[AllowAnonymous] [HttpPost] public ActionResult Register(RegisterModel model) { // 处理注册提交的逻辑 // ... }
方案2:修改web.config添加特定路径的授权规则
如果你不想用特性,也可以在web.config里添加<location>节点,单独给Account/Register路径开放匿名访问权限:
<!-- 放在根节点<configuration>里面,和<system.web>同级 --> <location path="Account/Register"> <system.web> <authorization> <allow users="?" /> </authorization> </system.web> </location>
这样修改后,再点击注册链接,就能正常跳转到注册页面啦!
内容的提问来源于stack exchange,提问作者Constantin M
相关产品推荐
相关产品推荐

