地址:http://www.oschina.net/code/snippet_1993919_49158
1. [代码]AccountController(SSOLogin)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Security; namespace SSOLogin.Controllers { public class AccountController : Controller { [AllowAnonymous] public ActionResult Login( string returnUrl) { if (Request.IsAuthenticated) { return RedirectToAction( "Index" , "Home" ); } ViewBag.returnUrl = returnUrl; return View(); } [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login( string username, string password, string returnUrl) { if (FormsAuthentication.Authenticate(username, password)) { FormsAuthentication.SetAuthCookie(username, false ); if (! string .IsNullOrEmpty(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction( "Index" , "Home" ); } } else { ModelState.AddModelError( string .Empty, "Invalid Detail!" ); ViewBag.returnUrl = returnUrl; return View(); } } } } |
2. [代码]Login.cshtml(SSOLoin)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
@{ ViewBag.Title = "Login" ; } <h2>Login</h2> @ using (Html.BeginForm( new { returnUrl = ViewBag.returnUrl })) { @Html.ValidationSummary() @Html.AntiForgeryToken() <div class = "form-group" > @Html.Label( "Username" ) @Html.Editor( "Username" ) </div> <div class = "form-group" > @Html.LabelForModel( "Password" ) @Html.Password( "Password" ) </div> <input class = "btn btn-primary" type= "submit" value= "login" /> } |
3. [代码]web.config(ssoLogin)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<?xml version= "1.0" encoding= "utf-8" ?> <!-- For more information on how to configure your ASP.NET application, please visit http: //go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http: //go.microsoft.com/fwlink/?LinkID=237468 --> <section name= "entityFramework" type= "System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission= "false" /> </configSections> <connectionStrings> <add name= "DefaultConnection" connectionString= "Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-SSOLogin-20150701143055;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-SSOLogin-20150701143055.mdf" providerName= "System.Data.SqlClient" /> </connectionStrings> <appSettings> <add key= "webpages:Version" value= "2.0.0.0" /> <add key= "webpages:Enabled" value= "false" /> <add key= "PreserveLoginUrl" value= "true" /> <add key= "ClientValidationEnabled" value= "true" /> <add key= "UnobtrusiveJavaScriptEnabled" value= "true" /> </appSettings> <system.web> <compilation debug= "true" targetFramework= "4.5" /> <httpRuntime targetFramework= "4.5" /> <authentication mode= "Forms" > <forms loginUrl= "http://16.187.25.23:9001/Account/Login" timeout= "2880" > <credentials passwordFormat= "SHA1" > <user name= "demo" password= "89e495e7941cf9e40e6980d14a16bf023ccd4c91" /> <!--password = demo--> </credentials> </forms> </authentication> <pages> <namespaces> <add namespace = "System.Web.Helpers" /> <add namespace = "System.Web.Mvc" /> <add namespace = "System.Web.Mvc.Ajax" /> <add namespace = "System.Web.Mvc.Html" /> <add namespace = "System.Web.Optimization" /> <add namespace = "System.Web.Routing" /> <add namespace = "System.Web.WebPages" /> </namespaces> </pages> <machineKey decryption= "AES" decryptionKey= "B1604C0351F94A670B483E6C0823B972F317AD1CD4527969" validation= "SHA1" validationKey= "F332ABBCC2D28648F0842871A0309E3D59CB5DCDA9141D489D5417DC72F386EE4872F5CD7CB443D1C4CDC6E9B1C8F53EF4D9272137692F632DFB5E8F13A9BE85" /> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration= "false" /> <handlers> <remove name= "ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> <remove name= "ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> <remove name= "ExtensionlessUrlHandler-Integrated-4.0" /> <add name= "ExtensionlessUrlHandler-ISAPI-4.0_32bit" path= "*." verb= "GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules= "IsapiModule" scriptProcessor= "%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition= "classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit= "0" /> <add name= "ExtensionlessUrlHandler-ISAPI-4.0_64bit" path= "*." verb= "GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules= "IsapiModule" scriptProcessor= "%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition= "classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit= "0" /> <add name= "ExtensionlessUrlHandler-Integrated-4.0" path= "*." verb= "GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type= "System.Web.Handlers.TransferRequestHandler" preCondition= "integratedMode,runtimeVersionv4.0" /> </handlers> </system.webServer> <runtime> <assemblyBinding xmlns= "urn:schemas-microsoft-com:asm.v1" > <dependentAssembly> <assemblyIdentity name= "System.Web.Helpers" publicKeyToken= "31bf3856ad364e35" /> <bindingRedirect oldVersion= "1.0.0.0-2.0.0.0" newVersion= "2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name= "System.Web.Mvc" publicKeyToken= "31bf3856ad364e35" /> <bindingRedirect oldVersion= "1.0.0.0-4.0.0.0" newVersion= "4.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name= "System.Web.WebPages" publicKeyToken= "31bf3856ad364e35" /> <bindingRedirect oldVersion= "1.0.0.0-2.0.0.0" newVersion= "2.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> <entityFramework> <defaultConnectionFactory type= "System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> </entityFramework> </configuration> |
4. [代码]HomeController(webapp1和webapp2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace WebApp2.Controllers { [Authorize] public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); } } } |
5. [代码]web.config(webapp1和webapp2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
<?xml version= "1.0" encoding= "utf-8" ?> <!-- For more information on how to configure your ASP.NET application, please visit http: //go.microsoft.com/fwlink/?LinkId=152368 --> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http: //go.microsoft.com/fwlink/?LinkID=237468 --> <section name= "entityFramework" type= "System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission= "false" /> </configSections> <connectionStrings> <add name= "DefaultConnection" providerName= "System.Data.SqlClient" connectionString= "Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-WebApp1-20150701143240;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-WebApp1-20150701143240.mdf" /> </connectionStrings> <appSettings> <add key= "webpages:Version" value= "2.0.0.0" /> <add key= "webpages:Enabled" value= "false" /> <add key= "PreserveLoginUrl" value= "true" /> <add key= "ClientValidationEnabled" value= "true" /> <add key= "UnobtrusiveJavaScriptEnabled" value= "true" /> </appSettings> <system.web> <httpRuntime targetFramework= "4.5" /> <compilation debug= "true" targetFramework= "4.5" /> <authentication mode= "Forms" > <forms loginUrl= "http://16.187.25.23:9001/Account/Login" timeout= "2880" > </forms> </authentication> <pages> <namespaces> <add namespace = "System.Web.Helpers" /> <add namespace = "System.Web.Mvc" /> <add namespace = "System.Web.Mvc.Ajax" /> <add namespace = "System.Web.Mvc.Html" /> <add namespace = "System.Web.Optimization" /> <add namespace = "System.Web.Routing" /> <add namespace = "System.Web.WebPages" /> </namespaces> </pages> <profile defaultProvider= "DefaultProfileProvider" > <providers> <add name= "DefaultProfileProvider" type= "System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName= "DefaultConnection" applicationName= "/" /> </providers> </profile> <membership defaultProvider= "DefaultMembershipProvider" > <providers> <add name= "DefaultMembershipProvider" type= "System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName= "DefaultConnection" enablePasswordRetrieval= "false" enablePasswordReset= "true" requiresQuestionAndAnswer= "false" requiresUniqueEmail= "false" maxInvalidPasswordAttempts= "5" minRequiredPasswordLength= "6" minRequiredNonalphanumericCharacters= "0" passwordAttemptWindow= "10" applicationName= "/" /> </providers> </membership> <roleManager defaultProvider= "DefaultRoleProvider" > <providers> <add name= "DefaultRoleProvider" type= "System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName= "DefaultConnection" applicationName= "/" /> </providers> </roleManager> <sessionState mode= "InProc" customProvider= "DefaultSessionProvider" > <providers> <add name= "DefaultSessionProvider" type= "System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName= "DefaultConnection" /> </providers> </sessionState> <machineKey decryptionKey= "553663C339D113C9B9EF1DEFFD9E6DD5B1B9BEBD01AAA51A" validation= "SHA1" validationKey= "08A0B67867C2BD7235BABF1B9506A5F8F7A1E2565539C151F9F42DCC324A07263E8AB9C5865F08B1B242B2B6C79D32A77A23D57CF0B4E7CCCFAD230EDED1A9DA" /> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration= "false" /> <handlers> <remove name= "ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> <remove name= "ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> <remove name= "ExtensionlessUrlHandler-Integrated-4.0" /> <add name= "ExtensionlessUrlHandler-ISAPI-4.0_32bit" path= "*." verb= "GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules= "IsapiModule" scriptProcessor= "%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition= "classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit= "0" /> <add name= "ExtensionlessUrlHandler-ISAPI-4.0_64bit" path= "*." verb= "GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules= "IsapiModule" scriptProcessor= "%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition= "classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit= "0" /> <add name= "ExtensionlessUrlHandler-Integrated-4.0" path= "*." verb= "GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type= "System.Web.Handlers.TransferRequestHandler" preCondition= "integratedMode,runtimeVersionv4.0" /> </handlers> </system.webServer> <runtime> <assemblyBinding xmlns= "urn:schemas-microsoft-com:asm.v1" > <dependentAssembly> <assemblyIdentity name= "System.Web.Helpers" publicKeyToken= "31bf3856ad364e35" /> <bindingRedirect oldVersion= "1.0.0.0-2.0.0.0" newVersion= "2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name= "System.Web.Mvc" publicKeyToken= "31bf3856ad364e35" /> <bindingRedirect oldVersion= "1.0.0.0-4.0.0.0" newVersion= "4.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name= "System.Web.WebPages" publicKeyToken= "31bf3856ad364e35" /> <bindingRedirect oldVersion= "1.0.0.0-2.0.0.0" newVersion= "2.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> <entityFramework> <defaultConnectionFactory type= "System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> </entityFramework> </configuration> |