1
- using Newtonsoft . Json ;
2
- using OAuthSample . Models ;
3
- using System ;
4
- using System . Collections . Generic ;
1
+ using System ;
5
2
using System . Configuration ;
6
3
using System . IO ;
7
- using System . Linq ;
8
4
using System . Net ;
9
5
using System . Web ;
10
6
using System . Web . Mvc ;
7
+ using Newtonsoft . Json ;
8
+ using OAuthSample . Models ;
11
9
12
10
namespace OAuthSample . Controllers
13
11
{
@@ -113,13 +111,18 @@ private String PerformTokenRequest(String postData, out TokenModel token)
113
111
114
112
public String GenerateAuthorizeUrl ( )
115
113
{
116
- return String . Format ( "{0}?client_id={1}&response_type=Assertion&state={2}&scope={3}&redirect_uri={4}" ,
117
- ConfigurationManager . AppSettings [ "AuthUrl" ] ,
118
- ConfigurationManager . AppSettings [ "AppId" ] ,
119
- "state" ,
120
- ConfigurationManager . AppSettings [ "Scope" ] ,
121
- ConfigurationManager . AppSettings [ "CallbackUrl" ]
122
- ) ;
114
+ UriBuilder uriBuilder = new UriBuilder ( ConfigurationManager . AppSettings [ "AuthUrl" ] ) ;
115
+ var queryParams = HttpUtility . ParseQueryString ( uriBuilder . Query ?? String . Empty ) ;
116
+
117
+ queryParams [ "client_id" ] = ConfigurationManager . AppSettings [ "AppId" ] ;
118
+ queryParams [ "response_type" ] = "Assertion" ;
119
+ queryParams [ "state" ] = "state" ;
120
+ queryParams [ "scope" ] = ConfigurationManager . AppSettings [ "Scope" ] ;
121
+ queryParams [ "redirect_uri" ] = ConfigurationManager . AppSettings [ "CallbackUrl" ] ;
122
+
123
+ uriBuilder . Query = queryParams . ToString ( ) ;
124
+
125
+ return uriBuilder . ToString ( ) ;
123
126
}
124
127
125
128
public string GenerateRequestPostData ( string code )
@@ -141,4 +144,4 @@ public string GenerateRefreshPostData(string refreshToken)
141
144
142
145
}
143
146
}
144
- }
147
+ }
0 commit comments