网址 API、Angular 和 MAC 地址
Web API, Angular and MAC Address
目前我公司正在应用程序上使用 ASP MVC。但是这个应用程序很慢而且有点混乱(许多程序员有不同的想法)我抓住这个项目重构并迁移到 Angular 和 Web API.
我的问题是:这个应用程序使用 MAC 地址到 "authenticate" 设备,有什么方法可以使用 ASP MVC 到 运行 Angular (然后我会得到 MAC 地址)然后正常使用 Web API?
我按照本教程找到了从 ASP MVC 启动 Angular 应用程序的解决方案:https://dotnetthoughts.net/how-to-use-angular4-wth-aspnet-mvc/
现在,运行 Angular 来自 ASP MVC,当用户向 IIS 发出第一个请求时,ASP 得到请求,然后我能够获取客户端 MAC 地址 (https://www.codeproject.com/Questions/709517/answer.aspx):
[DllImport( "Iphlpapi.dll" )]
private static extern int SendARP( Int32 dest, Int32 host, ref Int64 mac, ref Int32 length );
[DllImport( "Ws2_32.dll" )]
private static extern Int32 inet_addr( string ip );
private string GetMACAddress() {
try {
string userip = Request.UserHostAddress;
string strClientIP = Request.UserHostAddress.ToString().Trim();
Int32 ldest = inet_addr( strClientIP );
Int32 lhost = inet_addr( "" );
Int64 macinfo = new Int64();
Int32 len = 6;
int res = SendARP( ldest, 0, ref macinfo, ref len );
string mac_src = macinfo.ToString( "X" );
while ( mac_src.Length < 12 ) {
mac_src = mac_src.Insert( 0, "0" );
}
string mac_dest = "";
for ( int i = 0; i < 11; i++ ) {
if ( 0 == ( i % 2 ) ) {
if ( i == 10 ) {
mac_dest = mac_dest.Insert( 0, mac_src.Substring( i, 2 ) );
} else {
mac_dest = "-" + mac_dest.Insert( 0, mac_src.Substring( i, 2 ) );
}
}
}
return mac_dest;
} catch ( Exception err ) {
return $"ERRO: {err.Message}";
}
}
public ActionResult Index() {
ViewBag.MAC = this.GetMACAddress();
return View();
}
目前我公司正在应用程序上使用 ASP MVC。但是这个应用程序很慢而且有点混乱(许多程序员有不同的想法)我抓住这个项目重构并迁移到 Angular 和 Web API.
我的问题是:这个应用程序使用 MAC 地址到 "authenticate" 设备,有什么方法可以使用 ASP MVC 到 运行 Angular (然后我会得到 MAC 地址)然后正常使用 Web API?
我按照本教程找到了从 ASP MVC 启动 Angular 应用程序的解决方案:https://dotnetthoughts.net/how-to-use-angular4-wth-aspnet-mvc/
现在,运行 Angular 来自 ASP MVC,当用户向 IIS 发出第一个请求时,ASP 得到请求,然后我能够获取客户端 MAC 地址 (https://www.codeproject.com/Questions/709517/answer.aspx):
[DllImport( "Iphlpapi.dll" )]
private static extern int SendARP( Int32 dest, Int32 host, ref Int64 mac, ref Int32 length );
[DllImport( "Ws2_32.dll" )]
private static extern Int32 inet_addr( string ip );
private string GetMACAddress() {
try {
string userip = Request.UserHostAddress;
string strClientIP = Request.UserHostAddress.ToString().Trim();
Int32 ldest = inet_addr( strClientIP );
Int32 lhost = inet_addr( "" );
Int64 macinfo = new Int64();
Int32 len = 6;
int res = SendARP( ldest, 0, ref macinfo, ref len );
string mac_src = macinfo.ToString( "X" );
while ( mac_src.Length < 12 ) {
mac_src = mac_src.Insert( 0, "0" );
}
string mac_dest = "";
for ( int i = 0; i < 11; i++ ) {
if ( 0 == ( i % 2 ) ) {
if ( i == 10 ) {
mac_dest = mac_dest.Insert( 0, mac_src.Substring( i, 2 ) );
} else {
mac_dest = "-" + mac_dest.Insert( 0, mac_src.Substring( i, 2 ) );
}
}
}
return mac_dest;
} catch ( Exception err ) {
return $"ERRO: {err.Message}";
}
}
public ActionResult Index() {
ViewBag.MAC = this.GetMACAddress();
return View();
}