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

申し訳ありませんが、お役に立てません。統合セキュリティ (Windows セキュリティ) など、IIS で別のセキュリティ設定を使用する以外に、そのようなダイアログを取得する方法がわかりません。それが必要な場合は、IIS に移動して匿名アクセスを無効にし、統合、基本などの別の認証タイプを有効にする必要があります。コードでは、次のチェックを行うことでログインしていることを確認できます。

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

この場合、IIS が検証を行いますが。それ以外はお手伝いできません。

必要な場合は、asp.net の Windows 認証へのリンク: http://msdn.microsoft.com/en-us/library/ms998358.aspx

于 2008-09-29T16:20:07.277 に答える
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 に答える
0

はい、web.config に追加して、フォーム認証を使用できます。私はphpを知らないので、あなたの質問の残りの部分を手伝うことはできません

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

于 2008-09-29T15:58:17.577 に答える