I think you did not understand the question I need another method like Authenticate in any Controller which should accept no input and but it has to be give me a Token
Is it possible in ASP.net ZERO ?
using System;
using System.Threading.Tasks;
using System.Web.Http;
using Abp.Authorization.Users;
using Abp.UI;
using Abp.Web.Models;
using Microsoft.Owin.Infrastructure;
using Microsoft.Owin.Security;
using Microsoft.Owin.Security.OAuth;
using DinePlan.DineConnect.Authorization;
using DinePlan.DineConnect.Authorization.Roles;
using DinePlan.DineConnect.Authorization.Users;
using DinePlan.DineConnect.MultiTenancy;
using DinePlan.DineConnect.WebApi.Models;
namespace DinePlan.DineConnect.WebApi.Controllers
{
public class AccountController : DineConnectApiControllerBase
{
public static OAuthBearerAuthenticationOptions OAuthBearerOptions { get; private set; }
private readonly UserManager _userManager;
private readonly AbpLoginResultTypeHelper _abpLoginResultTypeHelper;
static AccountController()
{
OAuthBearerOptions = new OAuthBearerAuthenticationOptions();
}
public AccountController(
UserManager userManager,
AbpLoginResultTypeHelper abpLoginResultTypeHelper)
{
_userManager = userManager;
_abpLoginResultTypeHelper = abpLoginResultTypeHelper;
}
[HttpPost]
public async Task<AjaxResponse> Authenticate(LoginModel loginModel)
{
CheckModelState();
var loginResult = await GetLoginResultAsync(
loginModel.UsernameOrEmailAddress,
loginModel.Password,
loginModel.TenancyName
);
var ticket = new AuthenticationTicket(loginResult.Identity, new AuthenticationProperties());
var currentUtc = new SystemClock().UtcNow;
ticket.Properties.IssuedUtc = currentUtc;
ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromMinutes(30));
return new AjaxResponse(OAuthBearerOptions.AccessTokenFormat.Protect(ticket));
}
private async Task<AbpUserManager<Tenant, Role, User>.AbpLoginResult> GetLoginResultAsync(string usernameOrEmailAddress, string password, string tenancyName)
{
var loginResult = await _userManager.LoginAsync(usernameOrEmailAddress, password, tenancyName);
switch (loginResult.Result)
{
case AbpLoginResultType.Success:
return loginResult;
default:
throw _abpLoginResultTypeHelper.CreateExceptionForFailedLoginAttempt(loginResult.Result, usernameOrEmailAddress, tenancyName);
}
}
protected virtual void CheckModelState()
{
if (!ModelState.IsValid)
{
throw new UserFriendlyException("Invalid request!");
}
}
}
}
Please execute this and let me know
Thanks
I have tried that and it is not working
Could you please check it ?
Please reply
I am waiting for the reply since last week
I will put it like this
I want to create one more method in the controller like
Account/Authenticate
How to achieve ?
Account/Authenticate does not expect Token.
Hello Team,
I am building an Android App for my application on top of ASP.net ZERO
I am authenticating through
api/Account/Authenticate
Now, in My app i want to Send the Token automatically without sending Any Username and Password (for example, i want to have a TRY APP Feature )
How to build one ?
I have tried it but it is not allowing me to do that because it expects the Token in my request
Could you please let me know ?
How to Set it ?
Please show me a example
Thanks
Hello Team
I would like to show the Menu based on the Feature.
How to achieve that ?
.AddItem(new MenuItemDefinition( PageNames.App.Tenant.Connect, L("Connect"), "fa fa-connectdevelop", requiredPermissionName: AppPermissions.Pages_Tenant_Connect )
Folks Any update ?
Hello Team
Here is my question
In my application, I have a entity which stores Locations
Each Location will have one Organizational Unit and Organizational Unit have users
When the user logs in, I should be able to get all the location he is belongs to and I should restrict only the data relates to the Locations.
How to do that ?