asp.net-mvc - 在 VB .NET 中记录访问控制日志
问题描述
我是 VB .NET 的新手,我想编写一个方法,每次有人尝试登录时都将新条目保存到数据库中,无论尝试成功还是失败。我还需要捕获执行尝试的机器的 IP 地址。关于从哪里开始的任何建议
解决方案
I dont believe capturing ip can be done locally without a library for it, but if you dont mind an api call you can use ip-api.com
'Query location data
Dim Req As HttpWebRequest
Dim Ret As HttpWebResponse = Nothing
Dim SR As StreamReader
Req = DirectCast(WebRequest.Create("http://ip-api.com/json"), HttpWebRequest)
Ret = DirectCast(Req.GetResponse(), HttpWebResponse)
SR = New StreamReader(Ret.GetResponseStream())
Dim Raw As String = Nothing
Raw = SR.ReadToEnd()
Dim JavaScriptSerialization As New JavaScriptSerializer()
Dim ipdata_object As New IPData()
ipdata_object = JavaScriptSerialization.Deserialize(Raw, ipdata_object.GetType)
dim ip_address as string = ipdata_object.query.tostring()
IPData Class
'IP Data API Deserialization classes for http://ip-api.com/json API response
<Serializable>
Class IPData
Public asinfo As String
Public city As String
Public country As String
Public countryCode As String
Public isp As String
Public lat As String
Public lon As String
Public org As String
Public query As String
Public region As String
Public regionName As String
Public status As String
Public timezone As String
Public zip As String
End Class
As for logging, depending on what you want to use, Mysql, CSV, Flatfile, etc
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'SAVE FUNCTION
Dim LogString as String = "User " + Username + " Attempted to login from " + ip_address + " Successfully/Failed"
My.Computer.FileSystem.WriteAllText("C://testfile.txt", inputString, True)
End Sub
推荐阅读
- css - CSS 类未在 shopify 商店的 theme.scss 中定义
- python - 在python上方插入行的值
- google-bigquery - 从 Web UI 中删除了数据集,但帐单报告中没有变化
- while-loop - Python:如果没有 Itertools,我如何聚合列表列表中仅包含在该列表中的年份的值?
- javascript - this.function 与 this.fction() Javascript/Typescript
- javascript - 无法运行简单的 GET 方法 XHR/AJAX javascript 程序
- c - C中是否有任何函数可以将数组的内存地址存储到变量中?什么类型的变量会存储这个地址?
- haskell - 如何分叉标准输出?
- operating-system - 内核空间中的代码,用于交换两个不重叠的 4KB 数组的内容
- python - Python多处理一个类方法