0

私が読んだことから、次のコードは最初に「ArthurDent」のMembershipUserレコードが存在することを確認し、次に「ArthurDent」を現在のユーザーとして設定し、最後に彼のMembershipUserレコードを変数mUserに割り当てる必要があります。

if (Membership.GetUser("ArthurDent") == null)
{
   Membership.CreateUser("ArthurDent", "thisisapassword");
}
FormsAuthentication.SetAuthCookie("ArthurDent", true);
MembershipUser mUser = Membership.GetUser();

代わりに、変数 mUser は null のままです。

私の目標は、Web サイトに BlogEngine を追加したときにエラーが発生し始めたページで WebPartManager.DisplayMode を設定できるように、プログラムで現在のユーザーを有効なレコードに設定することです。

4

2 に答える 2

0

その答えは、BlogEngine が、Membership.GetUser() が取得する Page.User.Identity の通常の動作を積極的に抑制していることです。FormsAuthentication.SetAuthCookie を BlogEngine の次のコードに置き換えると...

Security.AuthenticateUser("ArthurDent", "thisisapassword", true);

... Arthur を認証し、ログインさせました。

于 2013-07-09T19:53:51.983 に答える
0

この問題は通常、アプリケーションが web.config ファイルで定義された規則に違反した場合に発生します。たとえば、Windows 認証を使用してローカル環境でコードを実行しましたが、パスワード文字列の長さが不十分だったため、CreateUser は最初に失敗しました。パスワードに追加の文字を埋め込んで、提供されたコードでユーザーを作成できました。セクションをチェックして、パスワードの前提条件を調べます。最初の調査では、これは構成の問題のように見えます。

于 2013-07-09T18:17:34.770 に答える