C# 4.0 在授权中使用位置标记

C# 4.0 在授权中使用位置标记,c#-4.0,webforms,authorization,C# 4.0,Webforms,Authorization,我有一个web.config文件,通过该文件,我试图使用location标记为我的应用程序提供基于角色的安全性。我已经阅读了许多文章,结果是,位置标签为授权用户提供了访问有限文件夹的权限,就像在我的web配置中一样,我有一个文件夹“HR页面”,它只允许访问角色为“HR”的用户。但我不清楚如何在代码文件(Login.aspx.cs)中使用它进行授权 注意:现在“Login.aspx.cs”并没有将我重定向到“WelcomeHR.aspx”页面。不知道为什么 Web.Config <?xml

我有一个web.config文件,通过该文件,我试图使用location标记为我的应用程序提供基于角色的安全性。我已经阅读了许多文章,结果是,位置标签为授权用户提供了访问有限文件夹的权限,就像在我的web配置中一样,我有一个文件夹“HR页面”,它只允许访问角色为“HR”的用户。但我不清楚如何在代码文件(Login.aspx.cs)中使用它进行授权

注意:现在“Login.aspx.cs”并没有将我重定向到“WelcomeHR.aspx”页面。不知道为什么

Web.Config

<?xml version="1.0" encoding="UTF-8"?>



    <configuration>
        <system.web>
            <compilation debug="true" targetFramework="4.0" />
          <authentication mode="Forms">
            <forms loginUrl="Login.aspx" defaultUrl="WelcomePage.aspx">

            </forms>
          </authentication>

          <authorization>
            <deny users="?" />
          </authorization>

        </system.web>
      <location path="HRpages">
        <system.web>
          <authorization>
            <allow roles="HR" />
            <deny users="*" />
          </authorization>
        </system.web>
      </location>

      <location path="AdminPages">
        <system.web>
          <authorization>
            <allow roles="Admin" />
            <deny users="*" />
          </authorization>
        </system.web>
      </location>
        <system.webServer>
            <defaultDocument>
                <files>
                    <add value="AddTwoNumbers.asmx" />
                </files>
            </defaultDocument>
        </system.webServer>

    </configuration>

有什么帮助吗???

这个案例可能不是真的:

if (Request.QueryString["ReturnUrl"] == null)
即使是这样,您也不会将用户登录或将其角色设置为“HR”。。。因此,如果重定向良好,他们将无法访问该页面

您可以使用登录用户


您还必须使用。。。您没有引用的。

您正在混合身份验证和授权。看看微软的基于声明的授权框架,它应该能帮你解决这个问题。
if (Request.QueryString["ReturnUrl"] == null)
if (TextBox1.Text.Trim() == "ABC" && TextBox2.Text.Trim() == "Gupta" && TextBox3.Text == "HR")
{
    FormsAuthentication.SetAuthCookie("ABC", true); //this will login the user as ABC

    String returnUrl1;
    //I don't understand how the logic below determines successful login or not.

    // the login is successful
    if (Request.QueryString["ReturnUrl"] == null)
    {
        returnUrl1 = "HRPages/WelcomeHR.aspx";
    }
    //login not unsuccessful 
    ...