4

是否可以创建与以下代码等效的 .NET?

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
} else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>

我也希望能够在 web.config 中定义静态用户/密码。这在 PHP 中很容易做到,在 MSDN 中没有看到任何解释如何做到这一点的东西。


我想要的是这个:

https://i.stack.imgur.com/IJE1b.png

4

6 回答 6

3

实现与 PHP 代码相同的最简单方法是通过Reponse.AppendHeader()直接发送相同的标头。

我仍然建议您阅读ASP.NET Forms Authentication Tutorial

于 2008-09-29T16:28:14.277 回答
2

您需要在 ASP.NET 中实现基本身份验证,而不是上述响应者所说的表单身份验证。一个很好的例子可以在这里找到

于 2008-09-29T19:23:13.077 回答
0

恐怕我帮不了你。除了在 IIS 中使用不同的安全设置(例如集成安全性(Windows 安全性))之外,我不知道如何获得这样的对话框。如果这就是您想要的,那么您需要进入 IIS 并禁用匿名访问,启用另一种身份验证类型,例如集成的、基本的,并且在您的代码中,您可以通过检查来验证它们是否已登录:

System.Security.Principal.WindowsIdentity.GetCurrent().IsAuthenticated

尽管在这种情况下 IIS 负责验证。除此之外,我帮不了你。

如果你需要它,在 asp.net 中的 windows auth 链接:http: //msdn.microsoft.com/en-us/library/ms998358.aspx

于 2008-09-29T16:20:07.277 回答
0

是的,您可以添加到 web.config 并使用表单身份验证。我不知道php,所以我无法回答你剩下的问题

http://msdn.microsoft.com/en-us/library/aa720092(VS.71).aspx \

于 2008-09-29T15:58:17.577 回答
0

是的,您可以在 web.config 中指定凭据。ASP.NET 也有一个内置的会员系统,并有像登录这样的控件来使用它——尽管这与在 web.config 中设置静态凭据不同。

我认为做你所说的最简单的方法是保护 IIS 中的目录。

于 2008-09-29T16:05:19.340 回答
0

我通常做自己的身份验证是针对我自己的数据库中的用户名和密码的 asp.net。对于我这样做的方式,我在页面上创建了一个用户名和密码对话框,并有一个登录按钮。在回发期间,我会执行以下操作:

if(SecurityHelper.LoginUser(txtUsername.Text, txtPassword.Text))
{
    FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);
}

记住这一点,你需要做的就是一样,检查用户名和密码是否符合你的要求,如果你想买,你甚至可以硬编码,我不推荐它。\如果它有效使用formsauthentication 类的静态方法。

于 2008-09-29T16:06:54.920 回答