0

FormsAuthentication を使用して、ajax を使用するユーザーのログインを認証する必要があります。ajax を使用するとリダイレクトがないため、FormsAuthentication.RedirectFromLoginPage("UserName",false) を使用できないことがわかっています。
このユーザーが承認したことを設定するには、何を使用できますか?
使用しようとしました:

FormsAuthentication.SetAuthCookie("UserName", false);

しかし、ここには Cookie があり、Cookie を使用したくありません。

ありがとう

4

1 に答える 1

0

要求/応答サイクル (Cookie など) とは別に、フォーム認証の暗号化/復号化/有効期限の側面を使用できます。

例: 次のような文字列として認証トークンを取得できます。

// create a ticket for "myusername" which expires in 15 minutes
string authToken = FormsAuthentication.Encrypt(new FormsAuthenticationTicket("myusername", false, 15));

そして、カスタム アプローチ (Cookie の代わりに何を使用するかを実際には指定していません) からユーザーからそれを受け取るときに、FormsAuthentication.Decryptを使用して有効かどうかを確認します。有効性を確認するには、例外をトラップして null を確認する必要があることに注意してください。

// decrypt receivedAuthToken string which was received somehow in your request
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(receivedAuthToken);

ただし、更新プロセスも自分で管理する必要があります。

var newTicket = FormsAuthentication.RenewTicketIfOld(authTicket);
var newToken = FormsAuthentication.Encrypt(newTicket)
于 2012-10-24T14:29:30.980 に答える