c# - 无法将我的登录结果定向到 Controller

标签 c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我是 C# 和 asp.net 世界的新手。所以我要问的问题可能很蹩脚,希望大家能忍受我:)。好的,我正在阅读一本书并了解在 asp.net 中如何进行身份验证和授权的基础知识。

现在我已经在我的 web.config 中定义了我的身份验证和授权;

<authentication mode="Forms">
  <forms loginUrl="~/Home/LogOn" protection="All" path="/" timeout="30" name="MyCookies" />
</authentication>
<authorization>

  <deny users="?"/>
  <allow users="*"/>

</authorization>

然后我继续创建我的登录表单。具体如下;

<form method="post" action="../Home/LogUser">
<fieldset>

<legend>Log On</legend>
<p>User Name</p>
<p><input type="text" name="txtUserName" id="txtUserName" size="30"/></p>

<p>Password</p>
<p><input type="password" name="txtPassword" id="txtPassword" size="30"/></p>

<p><input type="submit" name="btnSubmit" value="Log On"/></p>
</fieldset>
 </form>

我的问题是,因为我已经在我的 web.config 中定义拒绝匿名用户,所以当我尝试提交我的指向 Controller 的表单时,它会返回到登录页面。我该如何处理这种情况?也许我已经理解了 asp.net 中的整个登录范例,在这种情况下,我很感激对这方面的解释。

最佳答案

欢迎来到 asp.net。我特别喜欢 MVC 框架。希望你这样做。

很多建议

1) 如果您使用的是 MVC 框架,则不推荐使用此方法。一种更好的方法是将 [Authorize] 属性应用于 Controller 和/或您想要关闭的方法,以防止未经身份验证的用户访问。

这种方法允许极大的灵 active 来决定您的用户可以匿名去哪里,他们可以在哪里进行身份验证,以及只有特定角色可以去哪里 [Authorize(Roles="Admin")]

2) 如果您想继续进行 web.config 设置和身份验证位置,以允许用户访问特定位置,请将此代码添加到 web.config

<location path="~/Home/">
  <system.web>
    <authorization>
      <allow users="?" />
    </authorization>
  </system.web>
</location>

3) 我从你的问题中不明白的是你的意图。如果您希望用户能够登录,您应该打开 ~/Account/Logon 并且您的登录表单应该(理想情况下)张贴在那里。

关于c# - 无法将我的登录结果定向到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14533750/

相关文章:

c# - 使用 Asp.Net 核心和 Nunit 的测试未在 TestExplorer 中显示

c# - 将 IN 运算符与存储过程参数一起使用

asp.net-mvc - 在 asp.net-mvc 站点上,是否有处理可编辑 View 和只读 View 的好模式?

c# - 如何在完成异步任务之前等待 24 小时?

c# - 我可以在 Windows 7 上仅使用 VS 2010 Express 和本地主机来学习 ASP.NET MVC 吗?

c# - 将 .lib 和 .h 文件转换为 .NET

c# - 如何检查网站是否已在网络浏览器中打开?

asp.net - 链接到 aspx 页面的 CSS 未在 Firefox 中加载

c# - 绑定(bind)到 WPF 中元素相对于父级的位置

c# - 在 c# : expression evaluation function like flash script 中