22.11.2013, 13:18 | #1 |
Участник
|
CRM 2011 Авторизация Windows в asp.net
Вот код в сайте, простая страничка
X++: protected void Page_Load(object sender, EventArgs e) { try { if (Request.IsAuthenticated) { string username = HttpContext.Current.User.Identity.Name; Response.Write(username); Uri organizationUri = new Uri("http://nskdccrm/alventa/xrmservices/2011/Organization.svc"); //Authenticate using credentials of the logged in user; ClientCredentials Credentials = new ClientCredentials(); Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials; //This URL needs to be updated to match the servername and Organization for the environment. Uri HomeRealmUri = null; //OrganizationServiceProxy serviceProxy; using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(organizationUri, HomeRealmUri, Credentials, null)) { IOrganizationService service = (IOrganizationService)serviceProxy; QueryExpression qe = new QueryExpression("systemuser"); qe.PageInfo = new PagingInfo() { Count = 10, PageNumber = 1 }; qe.ColumnSet = new ColumnSet("fullname", "domainname"); foreach (Entity user in service.RetrieveMultiple(qe).Entities) { Response.Write(string.Format("<br />{0} - {1}", user["fullname"], user["domainname"])); } } } else { Response.Write("User is not authenticated"); } } catch (Exception ex) { Response.Write(ex.Message); } } А когда ставлю на серваке включаю только Windows авторизацию происходит ошибка Серверу не удалось обработать запрос из-за внутренней ошибки. Для получения дополнительной информации об ошибке включите IncludeExceptionDetailInFaults (или с помощью атрибута ServiceBehaviorAttribute, или из конфигурации поведения ) на сервере с целью отправки информации об исключении клиенту, либо включите трассировку, согласно документации Microsoft .NET Framework 3.0 SDK, и изучите журналы трассировки сервера. |
|
22.11.2013, 13:19 | #2 |
Участник
|
в чем проблема может быть?
|
|
22.11.2013, 14:13 | #3 |
Участник
|
Где расположена страница?
Как Вы к ней подключаетесь? От кого запущен пул? Если выставить анонимную авторизацию поможет ли это? Попробуйте выставить не только windows авторизацию, но и Олицетворение asp.net |
|
22.11.2013, 14:38 | #4 |
Участник
|
По порядку
1. Новый сайт, на отдельном порту, в нем и страничка одна единственная, aspx 2. По адресу http://server:101/default.aspx после чего запрашивается win авторизация и строкой Response.Write(username); выводится мой логин из AD. 3. ApplicationPoolIdentity 4. мне необходимо чтобы юзер и АД входил на сайт, чтобы под ним все действия выполнялись. Анонимная авторизация думаю это совсем наоборот. 5. Попробовал Олицетворение asp.net, выдал ошибку IIS Ошибка HTTP 500.24 - Internal Server Error •Для system.web/identity@impersonate установлено значение true. |
|
22.11.2013, 14:44 | #5 |
Участник
|
Вы уверены, что у Вас стоит только Windows Authentication?
__________________
Читайте SDK!!! |
|
22.11.2013, 14:46 | #6 |
Участник
|
ну я надеюсь))... а как это проверить?
|
|
22.11.2013, 14:47 | #7 |
Участник
|
|
|
22.11.2013, 14:48 | #8 |
Участник
|
X++: <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <authentication mode="Windows" > </authentication> <anonymousIdentification enabled="false"/> <authorization> <deny users="?"/> </authorization> </system.web> </configuration> ну вот весь мой конфиг... |
|
22.11.2013, 14:57 | #9 |
Участник
|
__________________
Читайте SDK!!! |
|
22.11.2013, 14:58 | #10 |
Участник
|
Попробуйте вот так
X++: <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> </configuration>
__________________
Читайте SDK!!! |
|
22.11.2013, 15:43 | #11 |
Участник
|
неа, тот же результат как и в первом посте
|
|
24.11.2013, 06:28 | #12 |
Участник
|
Разобрался!
Если кому интересно, то надо пул вашего приложения запускать от пользователя, под которым выполняется пул самой MS CRM Всем спасибо |
|
|
|