Сначала давайте установим несколько терминов:
User-supplied identifier
- это строка, в которую пользователь фактически вводит (или запускается нажатием предопределенной кнопки на RP), которая запускает обнаружение OpenID.Он не нормализован и никогда не должен использоваться для представления пользователя в вашей базе данных, поскольку он не является безопасным или уникальным, но является необходимой отправной точкой.Обнаружение по этому идентификатору дает либо claimed identifier
, либо OP Identifier
.Примеры: yahoo.com, myopenid.com и andrewarnott.myopenid.com
Claimed Identifier
- это идентификатор OpenID, который пользователь «контролирует» или использует в качестве своей личности.Это может быть или может не быть URL (это может быть XRI).Положительное утверждение от OP всегда будет заявленным идентификатором (даже если обнаружение началось с идентификатора OP).Примеры: https://andrewarnott.myopenid.com/
OP Identifier
, или «Идентификатор поставщика OpenID» - это идентификатор OpenID, для которого RP может выполнить обнаружение, чтобы начать поток identifier select
, где RP еще не знает, что заявлено пользователемИдентификатор будет.Примеры: https://me.yahoo.com/, http://www.myopenid.com/ и https://www.google.com/accounts/o8/id
OP Endpoint
- это фактический URL-адрес, на который RP перенаправляет пользователя для аутентификации пользователя, и используется дляустановить общие ассоциации или выполнить прямую проверку утверждения, которое использует частную ассоциацию OP.Примеры: http://localhost/server.aspx, http://localhost/provider.ashx, https://www.google.com/accounts/o8/ud (обратите внимание на окончание ud вместо id)
Так что со всем этим фоном ваш OpenIdRelyingParty.CreateRequest
вызов должен получить пользователяидентификатор, который также может быть заявленным идентификатором или идентификатором OP.Он должен , а не быть конечной точкой OP.Например, вы можете указать:
openIdRelyingParty.CreateRequest("http://localhost/sampleop/")
или
openIdRelyingParty.CreateRequest("http://localhost/user.aspx?username=bob")