asp.net / sql user.identity.name - PullRequest
       5

asp.net / sql user.identity.name

0 голосов
/ 10 декабря 2011

Я пытаюсь получить представление сведений в ASP.NET, чтобы отображать сведения только вошедшего в систему пользователя. Мне сказали использовать:

select * from STAFF where USERNAME = user.identity.name

Я подумал, что это слишком просто, чтобы быть правдой, и я был прав, так как не показывает данных при попытке запустить. Любая помощь с этим, пожалуйста ..

1 Ответ

0 голосов
/ 10 декабря 2011

Я только недавно пытался сделать то же самое.Это было слишком сильной головной болью для того, что я хотел сделать, поэтому я закончил создание формы с нуля.Если вы хотите использовать подробное представление, вы можете вызвать

aspnet_Membership_GetUserByName или aspnet_Membership_GetUserByEmail или aspnet_Membership_GetUserByUserId

и заполнить DataTable или DataBet с помощью DataView и DataBet.Однако, если вы можете избежать использования DetailsView для этого, я бы порекомендовал его, потому что вы обходите поставщика членства, который полностью отвергает цели его получения.

Попробуйте расширить SqlMembershipProvide r насоздание CustomMembershipProvider и переопределение и перегрузка метода GetUser() для возврата DataTable, который можно легко привязать к представлению сведений.

Это будет выглядеть примерно так>

using System.Web.Security;
using System.Data;

namespace yourNameSpace
{

    public class CustomSqlMembershipProvider : SqlMembershipProvider
    {


        public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
        {
            return base.GetUser(providerUserKey, userIsOnline);
        }

        public DataTable GetUser(string UserName)
        {
            MembershipUser user = base.GetUser(username, false);

            //code to create a datatable and populate it with user properties.
            DataTable dt = new DataTable();

            //Add columns
            DataColumn column = new DataColumn();

            //add columns to table

            return dt;
        }
    }
}

Когда вы закончите, убедитесь, что вы указали нового поставщика услуг в своем web.config.

Помогите, это даст вам направление.Это требует некоторой работы, но, в конце концов, это проще в обслуживании, чем устранение неисправностей любого членства, обходящего код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...