FormsAuthentication.HashPasswordForStoringInConfigFile メソッド
指定したパスワードとハッシュ アルゴリズムに基づいて、構成ファイルに格納できるハッシュ パスワードを生成します。
名前空間: System.Web.Security
アセンブリ: System.Web (system.web.dll 内)
構文
'宣言
Public Shared Function HashPasswordForStoringInConfigFile ( _
password As String, _
passwordFormat As String _
) As String
'使用
Dim password As String
Dim passwordFormat As String
Dim returnValue As String
returnValue = FormsAuthentication.HashPasswordForStoringInConfigFile(password, passwordFormat)
public static string HashPasswordForStoringInConfigFile (
string password,
string passwordFormat
)
public:
static String^ HashPasswordForStoringInConfigFile (
String^ password,
String^ passwordFormat
)
public static String HashPasswordForStoringInConfigFile (
String password,
String passwordFormat
)
public static function HashPasswordForStoringInConfigFile (
password : String,
passwordFormat : String
) : String
適用できません。
パラメータ
- password
ハッシュするパスワード。
- passwordFormat
使用するハッシュ アルゴリズム。passwordFormat は、FormsAuthPasswordFormat 列挙値の 1 つを表す String になります。
戻り値
ハッシュされたパスワード。
例外
例外の種類 | 条件 |
---|---|
password is null 参照 (Visual Basic では Nothing) または passwordFormat が null 参照 (Visual Basic では Nothing) です。 |
|
passwordFormat が有効な FormsAuthPasswordFormat 値ではありません。 |
解説
HashPasswordForStoringInConfigFile メソッドは、アプリケーションの構成ファイルにフォーム認証資格情報を格納する際に使用できるハッシュ パスワード値を生成します。
アプリケーションの構成ファイルに格納された認証資格情報は、アプリケーションのユーザーのパスワードを検証する目的で Authenticate メソッドによって使用されます。ASP.NET メンバシップを使用してユーザー資格情報を格納することもできます。詳細については、「メンバシップを使用したユーザーの管理」を参照してください。
使用例
ユーザー名、パスワード、およびハッシュ タイプを入力値として受け取り、ユーザー定義とハッシュされたパスワードが格納された構成ファイルの credentials セクションを表示するコード例を次に示します。
セキュリティに関するメモ : |
---|
この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。詳細については、「スクリプトによる攻略の概要」を参照してください。 |
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
<script runat="server">
Sub Cancel_Click(sender As Object, e As EventArgs)
userName.Text = ""
password.Text = ""
repeatPassword.Text = ""
result.Text = ""
End Sub
Sub HashPassword_Click(sender As Object, e As EventArgs)
If Page.IsValid Then
Dim hashMethod As String = ""
If md5.Checked Then
hashMethod = "MD5"
Else
hashMethod = "SHA1"
End If
Dim hashedPassword As String = _
FormsAuthentication.HashPasswordForStoringInConfigFile(password.Text, hashMethod)
result.Text = "<credentials passwordFormat=""" & hashMethod & _
"""><br />" & " <user name=""" & Server.HtmlEncode(userName.Text) & """ password=""" & _
hashedPassword & """ /><br />" & "</credentials>"
Else
result.Text = "There was an error on the page."
End If
End Sub
</script>
</head>
<body>
<form id="form1" runat="server">
<p>This form displays the results of the FormsAuthentication.HashPasswordForStoringInConfigFile
method.<br />The user name and hashed password can be stored in a <credentials> node
in the Web.config file.</p>
<table cellpadding="2">
<tbody>
<tr>
<td>New User Name:</td>
<td><asp:TextBox id="userName" runat="server" /></td>
<td><asp:RequiredFieldValidator id="userNameRequiredValidator"
runat="server" ErrorMessage="User name required"
ControlToValidate="userName" /></td>
</tr>
<tr>
<td>Password: </td>
<td><asp:TextBox id="password" runat="server" TextMode="Password" /></td>
<td><asp:RequiredFieldValidator id="passwordRequiredValidator"
runat="server" ErrorMessage="Password required"
ControlToValidate="password" /></td>
</tr>
<tr>
<td>Repeat Password: </td>
<td><asp:TextBox id="repeatPassword" runat="server" TextMode="Password" /></td>
<td><asp:RequiredFieldValidator id="repeatPasswordRequiredValidator"
runat="server" ErrorMessage="Password confirmation required"
ControlToValidate="repeatPassword" />
<asp:CompareValidator id="passwordCompareValidator" runat="server"
ErrorMessage="Password does not match"
ControlToValidate="repeatPassword"
ControlToCompare="password" /></td>
</tr>
<tr>
<td>Hash function:</td>
<td align="center">
<asp:RadioButton id="sha1" runat="server" GroupName="HashType"
Text="SHA1" />
<asp:RadioButton id="md5" runat="server" GroupName="HashType"
Text="MD5" />
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Button id="hashPassword" onclick="HashPassword_Click"
runat="server" Text="Hash Password" />
<asp:Button id="cancel" onclick="Cancel_Click" runat="server"
Text="Cancel" CausesValidation="false" />
</td>
</tr>
</tbody>
</table>
<pre><asp:Label id="result" runat="server"></asp:Label></pre>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
<script runat="server">
void Cancel_Click(object sender, EventArgs e)
{
userName.Text = "";
password.Text = "";
repeatPassword.Text = "";
result.Text = "";
}
void HashPassword_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
string hashMethod = "";
if (md5.Checked)
{
hashMethod = "MD5";
}
else
{
hashMethod = "SHA1";
}
string hashedPassword =
FormsAuthentication.HashPasswordForStoringInConfigFile(password.Text, hashMethod);
result.Text = "<credentials passwordFormat=\"" + hashMethod +"\"><br />" +
" <user name=\"" + Server.HtmlEncode(userName.Text) + "\" password=\"" +
hashedPassword + "\" /><br />" + "</credentials>";
}
else
{
result.Text = "There was an error on the page.";
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<p>This form displays the results of the FormsAuthentication.HashPasswordForStoringInConfigFile
method.<br />The user name and hashed password can be stored in a <credentials> node
in the Web.config file.</p>
<table cellpadding="2">
<tbody>
<tr>
<td>New User Name:</td>
<td><asp:TextBox id="userName" runat="server" /></td>
<td><asp:RequiredFieldValidator id="userNameRequiredValidator"
runat="server" ErrorMessage="User name required"
ControlToValidate="userName" /></td>
</tr>
<tr>
<td>Password: </td>
<td><asp:TextBox id="password" runat="server" TextMode="Password" /></td>
<td><asp:RequiredFieldValidator id="passwordRequiredValidator"
runat="server" ErrorMessage="Password required"
ControlToValidate="password" /></td>
</tr>
<tr>
<td>Repeat Password: </td>
<td><asp:TextBox id="repeatPassword" runat="server" TextMode="Password" /></td>
<td><asp:RequiredFieldValidator id="repeatPasswordRequiredValidator"
runat="server" ErrorMessage="Password confirmation required"
ControlToValidate="repeatPassword" />
<asp:CompareValidator id="passwordCompareValidator" runat="server"
ErrorMessage="Password does not match"
ControlToValidate="repeatPassword"
ControlToCompare="password" /></td>
</tr>
<tr>
<td>Hash function:</td>
<td align="center">
<asp:RadioButton id="sha1" runat="server" GroupName="HashType"
Text="SHA1" />
<asp:RadioButton id="md5" runat="server" GroupName="HashType"
Text="MD5" />
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Button id="hashPassword" onclick="HashPassword_Click"
runat="server" Text="Hash Password" />
<asp:Button id="cancel" onclick="Cancel_Click" runat="server"
Text="Cancel" CausesValidation="false" />
</td>
</tr>
</tbody>
</table>
<pre><asp:Label id="result" runat="server"></asp:Label></pre>
</form>
</body>
</html>
プラットフォーム
Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition
Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。
バージョン情報
.NET Framework
サポート対象 : 3.0,2.0,1.1,1.0
参照
関連項目
FormsAuthentication クラス
FormsAuthentication メンバ
System.Web.Security 名前空間