| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using System;
- using System.Threading.Tasks;
- using Microsoft.Owin.Security.OAuth;
- namespace Winsoft.GOV.XF.WX.Providers
- {
- public class ApplicationOAuthProvider : OAuthAuthorizationServerProvider
- {
- private readonly string _publicClientId;
- public ApplicationOAuthProvider(string publicClientId)
- {
- if (publicClientId == null)
- {
- throw new ArgumentNullException("publicClientId");
- }
- _publicClientId = publicClientId;
- }
- public override Task ValidateClientRedirectUri(OAuthValidateClientRedirectUriContext context)
- {
- if (context.ClientId == _publicClientId)
- {
- Uri expectedRootUri = new Uri(context.Request.Uri, "/");
- if (expectedRootUri.AbsoluteUri == context.RedirectUri)
- {
- context.Validated();
- }
- else if (context.ClientId == "web")
- {
- var expectedUri = new Uri(context.Request.Uri, "/");
- context.Validated(expectedUri.AbsoluteUri);
- }
- }
- return Task.FromResult<object>(null);
- }
- }
- }
|