PC(Windows 7、IIS 7.5)の2つのアプリケーション間で認証を使用しようとしていますが、すべてうまくいきます。しかし、問題は、これらのサイト(Windows Webサーバー2008、IIS 7.0)を公開しようとすると、相互認証が機能しなかったことです。
長い調査の結果、2番目のサイトにある次のコードでエラーが発生したことがわかりました。
Dim formsCookie As HttpCookie = Request.Cookies(FormsAuthentication.FormsCookieName)
If (formsCookie IsNot Nothing) Then
Else
' always null
コードビハインドでこのようなパスをチェックしようとしました:
Dim ticket As New FormsAuthenticationTicket(1, smsProfile, DateTime.Now, _
DateTime.Now.AddDays(1), True, AdminSessions.UserObj.Pid, _
FormsAuthentication.FormsCookiePath)
Dim hash As String = FormsAuthentication.Encrypt(ticket)
Dim cookie As New HttpCookie(
FormsAuthentication.FormsCookieName,
hash)
If (ticket.IsPersistent) Then
cookie.Expires = ticket.Expiration
End If
Response.Cookies.Add(cookie)
Response.Redirect(smsPortal)
web.config:
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" enableCrossAppRedirects="true" domain="mydomain.com.jo" loginUrl="http://..." protection="All" path="/"/>
</authentication>
ローカルPCのIISとサーバーの違いを教えてください。
ありがとう。