Как отправить выбранный параметр из выпадающего списка в C# код файла для использования вместо User.Identity.Name? - PullRequest
0 голосов
/ 23 апреля 2020

Мне удалось создать быстрый и грязный asp пользовательский инструмент администрирования веб-сайта для устаревшего приложения, и я смог реализовать инструменты для регистрации, активации, назначения ролей, создания ролей, но я изо всех сил стараюсь создать такой, который позволит вам выбрать существующего пользователя и удалить всю связанную с ним информацию из базовой, как pnet база данных безопасности (Users, UserinRoles, Membership и др. c ..).

На этом этапе я разработал инструмент, который запрашивает мою базу данных sql, возвращает всех существующих пользователей и связывает ее с раскрывающимся списком. У меня есть кнопка удаления, которая вызывает функцию в файле кода, которая удаляет всю связанную информацию пользователя, но ТОЛЬКО ТО, ЧТО В ТЕЧЕНИЕ ВРЕМЯ ВХОДИЛО В ПОЛЬЗОВАТЕЛЯ.

То, что я хочу, - это ТОЛЬКО удалить пользовательскую информацию ТОЛЬКО ВЫБРАННОГО ПОЛЬЗОВАТЕЛЯ, КОТОРАЯ ВЫБРАНА В DROP DOWN.

Пожалуйста, извините за мое невежество. Я потратил несколько часов, пытаясь найти самое простое решение самостоятельно.

Вот передняя страница ASPX:

<h3>Delete Users</h3>
    <p>
        <b>Select a User:</b>
        <asp:DropDownList ID="UserList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="Page_Load"></asp:DropDownList>
    </p>
    <p>
        <asp:SqlDataSource ID="UserInfo" runat="server" ConnectionString="<%$ ConnectionStrings:AspnetdbConnectionString %>" SelectCommand="SELECT [UserName], [UserID] FROM [vw_aspnet_MembershipUsers] WHERE ([UserName] = @UserName)">
            <SelectParameters>
                <asp:ControlParameter Name="Username" ControlID="UserList" PropertyName="SelectedValue" />
            </SelectParameters>                
        </asp:SqlDataSource>
        <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataSourceID="UserInfo" Height="50px">
            <Fields>
                <asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
                <asp:BoundField DataField="UserId" HeaderText="UserId" SortExpression="UserId" />                                         
            </Fields>               
        </asp:DetailsView>
        <asp:Button id="DeleteButton" Text="Yes" OnClick="DeleteButton_OnClick" runat="server" />
    </p>
</div>

Код с файлом находится здесь:

 < using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Web.Security;

public partial class DeleteUsers : System.Web.UI.Page
{    
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        DisplayUsersInGrid();
    }
}

private void DisplayUsersInGrid()
{
    UserList.DataSource = Membership.GetAllUsers();
    UserList.DataBind();
}

public void DeleteButton_OnClick(object sender, EventArgs args)
{
    Membership.DeleteUser(User.Identity.Name);
    ActionStatus.Visible = true;
}    

1 Ответ

1 голос
/ 24 апреля 2020

Вы пытаетесь удалить текущего вошедшего в систему пользователя. Вы должны получить выбранный идентификатор пользователя из выпадающего списка и перейти к DeleteUserFunction.

Заменить Membership.DeleteUser (User.Identity.Name); с ниже

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