Есть несколько вопросов, подобных вашему, уже есть в StackOverflow. Этот кажется особенно похожим.
Если вы уже используете поставщика членства для своего сайта и просто добавляете к нему OpenID, то я думаю, вы ' Вы пока застряли с членством и можете использовать один из ответов на вопрос, на который я ссылался, чтобы получить приличного поставщика членства, который МОЖЕТ работать на вас.
Но если вы пишете новый сайт и просто хотите, как вы сказали, «использовать роли и сохранить имя пользователя для пользователя в моих таблицах», то НЕ используйте членство в ASP.NET вообще. Это ТАК не стоит! Это не соответствует парадигме OpenID без пароля и вызывает больше горя, чем что-либо другое. Если вы сами не боитесь небольшого доступа к базе данных, сделайте это так. И вы можете очень легко получить поведение ролей, просто выполнив собственный вызов FormsAuthentication.RedirectFromLoginPage
или FormsAuthentication.SetAuthCookie
и передав роли, которые заполняет пользователь.
FormsAuthentication.RedirectFromLoginPage
или FormsAuthentication.SetAuthCookie
и передав роли, которые заполняет пользователь. Если вы пишете новый сайт и просто хотите «использовать роли и сохранять имя пользователя в моих таблицах», как вы сказали, то НЕ используйте членство в ASP.NET вообще. Это ТАК не стоит! Это не соответствует парадигме OpenID без пароля и вызывает больше горя, чем что-либо другое. Если вы сами не боитесь небольшого доступа к базе данных, сделайте это так. И вы можете очень легко получить поведение ролей, просто выполнив собственный вызов FormsAuthentication.RedirectFromLoginPage
или FormsAuthentication.SetAuthCookie
и передав роли, которые заполняет пользователь. парадигма без пароля и просто вызывает больше горя, чем что-либо другое. Если вы сами не боитесь небольшого доступа к базе данных, сделайте это так. И вы можете очень легко получить поведение ролей, просто выполнив собственный вызов FormsAuthentication.RedirectFromLoginPage
или FormsAuthentication.SetAuthCookie
и передав роли, которые заполняет пользователь. парадигма без пароля и просто вызывает больше горя, чем что-либо другое. Если вы сами не боитесь небольшого доступа к базе данных, сделайте это так. И вы можете очень легко получить поведение ролей, просто выполнив собственный вызов FormsAuthentication.RedirectFromLoginPage
или FormsAuthentication.SetAuthCookie
и передав роли, которые заполняет пользователь. Провайдер открытого идентификатора возвращает данные о пользователе. Если вы не запрашиваете / не требуете определенные токены информации, то вам будет предоставлено только отображаемое имя пользователя и URL-адрес идентификации.
В зависимости от того, какую открытую библиотеку идентификаторов вы используете, вы можете запрашивать токены, такие как FirstName LastName, DOB (если вам действительно не все равно), и если пользователь предоставил эту информацию о своей выбранной личности, вы получите ее обратно. .
Затем вы можете использовать это для создания нового пользователя в системе членства. Вам, вероятно, придется дать им фиктивный пароль, чтобы обойти требования API членства.
Чтобы подтвердить логин, предоставьте одну форму, которая принимает имя пользователя и пароль, а другая - идентификационный URL. После того, как вы подтвердили пользователя через открытый идентификатор, попробуйте найти пользователя по имени пользователя (идентификационному URL) в API членства. Если его не существует, создайте его.